/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package modulos.nota.vista;

import basedatos.OperacionesBD;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import javax.swing.JOptionPane;
import modulos.nota.modelo.Nota;
import modulos.usuario.modelo.Usuario;
import vista.frmPrincipal;
import vista.modelo.Mensaje;
import vista.modelo.OperacionesVarias;

public class FrmNotas extends javax.swing.JInternalFrame {

    boolean desdeMensajes = false;
    public static String ENVIADO = "Enviado";
    public static String RECIBIDO = "Recibido";
    public static String ENVIADO_RECIBIDO = "Enviado y Recibido";
    public static String NINGUNO = "Ninguno";

    /**
     * Creates new form FrmNotas
     */
    public FrmNotas() {
        listar();
        if (!usuarios.isEmpty()) {
            initComponents();
            OperacionesVarias.centrar(this);
            txtFecha.setText(OperacionesVarias.fechaString(new Date()));
            poneCombo();
        } else {
            this.dispose();
            JOptionPane.showMessageDialog(null, "No existen usuarios a los cuales mandar una sugerencia");

        }
    }

    public FrmNotas(boolean desdeMensajes) {
        listar();
        if (!usuarios.isEmpty()) {
            initComponents();
            OperacionesVarias.centrar(this);
            txtFecha.setText(OperacionesVarias.fechaString(new Date()));
            poneCombo();
            this.desdeMensajes = desdeMensajes;
        } else {
            this.dispose();
            JOptionPane.showMessageDialog(null, "No existen usuarios a los cuales mandar una sugerencia");

        }
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        txtFecha = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        txtDescripcion = new javax.swing.JTextArea();
        jLabel2 = new javax.swing.JLabel();
        btnCerrar = new javax.swing.JButton();
        btnAceptar = new javax.swing.JButton();
        txtTitulo = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        cbDestinatario = new javax.swing.JComboBox();
        jLabel5 = new javax.swing.JLabel();

        setClosable(true);
        setTitle("NOTAS");
        setFrameIcon(new javax.swing.ImageIcon(getClass().getResource("/jpgs/Edit.png"))); // NOI18N
        getContentPane().setLayout(null);

        jLabel1.setFont(new java.awt.Font("DejaVu Sans", 1, 13)); // NOI18N
        jLabel1.setText("Descripcion:");
        getContentPane().add(jLabel1);
        jLabel1.setBounds(20, 100, 100, 17);

        txtFecha.setEditable(false);
        txtFecha.setBackground(new java.awt.Color(242, 218, 218));
        txtFecha.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtFecha.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        getContentPane().add(txtFecha);
        txtFecha.setBounds(120, 0, 240, 30);

        txtDescripcion.setColumns(20);
        txtDescripcion.setLineWrap(true);
        txtDescripcion.setRows(5);
        jScrollPane1.setViewportView(txtDescripcion);

        getContentPane().add(jScrollPane1);
        jScrollPane1.setBounds(20, 120, 360, 150);

        jLabel2.setFont(new java.awt.Font("DejaVu Sans", 1, 12)); // NOI18N
        jLabel2.setText("Titulo:");
        getContentPane().add(jLabel2);
        jLabel2.setBounds(20, 70, 100, 30);

        btnCerrar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jpgs/agt_home.png"))); // NOI18N
        btnCerrar.setText("Cerrar");
        btnCerrar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCerrarActionPerformed(evt);
            }
        });
        getContentPane().add(btnCerrar);
        btnCerrar.setBounds(300, 310, 90, 30);

        btnAceptar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jpgs/accept.png"))); // NOI18N
        btnAceptar.setText("Aceptar");
        btnAceptar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnAceptarActionPerformed(evt);
            }
        });
        getContentPane().add(btnAceptar);
        btnAceptar.setBounds(160, 280, 100, 30);
        getContentPane().add(txtTitulo);
        txtTitulo.setBounds(120, 70, 240, 30);

        jLabel4.setFont(new java.awt.Font("DejaVu Sans", 1, 12)); // NOI18N
        jLabel4.setText("Destinatario:");
        getContentPane().add(jLabel4);
        jLabel4.setBounds(20, 37, 100, 30);

        getContentPane().add(cbDestinatario);
        cbDestinatario.setBounds(120, 33, 240, 30);

        jLabel5.setFont(new java.awt.Font("DejaVu Sans", 1, 12)); // NOI18N
        jLabel5.setText("Fecha:");
        getContentPane().add(jLabel5);
        jLabel5.setBounds(20, 10, 100, 15);

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-408)/2, (screenSize.height-375)/2, 408, 375);
    }// </editor-fold>//GEN-END:initComponents

    private void btnCerrarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCerrarActionPerformed
        dispose();
    }//GEN-LAST:event_btnCerrarActionPerformed

    private void btnAceptarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAceptarActionPerformed
        if (!txtTitulo.getText().isEmpty() && !txtDescripcion.getText().isEmpty()) {
            nota = new Nota();
            Calendar c = Calendar.getInstance();
            nota.setFecha(c);
            nota.setTitulo(txtTitulo.getText());
            nota.setDescripcion(txtDescripcion.getText());
            usuario = usuarios.get(cbDestinatario.getSelectedIndex());
            nota.setDestinatario(usuario);
            nota.setIdRemitente(logueado.getIdPersona());
            nota.setEstado(ENVIADO_RECIBIDO);
            if (usuario != null) {
                if (OperacionesBD.guardar(nota)) {
                    JOptionPane.showMessageDialog(null, "Su sugerencia ha sido enviada al usuario " + usuario.getNombre());
                    if (desdeMensajes) {
                        FrmMensajes.notasEnviadas.add(nota);
                        FrmMensajes.poneTablaBandejaSlida(FrmMensajes.notasEnviadas);
                    }
                } else {
                    JOptionPane.showMessageDialog(null, "No se ha podido enviar la sugerencia");
                }
            } else {
                JOptionPane.showMessageDialog(null, "Error al guardar el usuario");
            }

        } else {
            Mensaje.camposVacios();
        }
    }//GEN-LAST:event_btnAceptarActionPerformed
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnAceptar;
    private javax.swing.JButton btnCerrar;
    private javax.swing.JComboBox cbDestinatario;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea txtDescripcion;
    private javax.swing.JTextField txtFecha;
    private javax.swing.JTextField txtTitulo;
    // End of variables declaration//GEN-END:variables
    Nota nota;
    Usuario usuario;
    ArrayList<Usuario> usuarios;
    Usuario logueado = (Usuario) frmPrincipal.UsuarioLogueado.get(0)[1];

    private void listar() {
        usuarios = (ArrayList<Usuario>) OperacionesBD.listar("Usuario");
        if (usuarios.contains(logueado)) {
            usuarios.remove(logueado);
        }
        for (Usuario u : usuarios) {
            if (u.getCuentaUsr().getTipo().equals("ASISTENTE")) {
                usuarios.remove(u);
                break;
            }
        }
    }

    private void poneCombo() {
        if (usuarios != null) {
            for (Usuario u : usuarios) {
                cbDestinatario.addItem(u.getNombre());
            }
        }

    }
}
